草庐IT

序列化器 Serializer

全部标签

c# - 为什么我不应该使类可序列化?

我正在我的View状态中存储一些对象,我想知道制作一个类Serializable是否有任何缺点?让所有的类都Serializable是不好的做法吗? 最佳答案 首先。避免View状态。通常序列化(文本)用于传输对象。您应该避免将任何不是DTO(数据传输对象)或消息类的类标记为可序列化。我们这样做有几个原因。以序列化格式获取您的类的内容可能没有非DTO类的方法信息(在原始程序集中)。其次,一个类可能引用一个资源(数据库连接、文件句柄等)不要序列化这些,因为反序列化不会重新建立资源连接和状态,除非明确设计,但这仍然是一个坏主意。所以总而

c# - Elasticsearch.Net.UnexpectedElasticsearchClientException 在反序列化结果

我有一个c#项目,我想向我的Elasticsearch服务器发送一个请求。这是我的连接和Elasticsearch客户端:ConnectionSettingsconnectionSettings;ElasticClientelasticClient;connectionSettings=newConnectionSettings(newUri("http://192.168.2.197:9292/"));elasticClient=newElasticClient(connectionSettings);这是我的要求:varresponse=elasticClient.Search(s

c# - 不区分大小写的反序列化

我有一个XML文件,其中我们已经定义了类来序列化或反序列化XML。当我们反序列化时,如果XML包含如下所示,其中“type”属性为大写,它会抛出错误,就像xml(2,2)中存在这样的错误。...[DescriptionAttribute("Thesharepoint'sdocumenttype.")][XmlAttribute("type")]publicDocumentTypeType{get;set;}publicenumDocumentType{pdf,ppt,pptx,doc,docx,xlsx,xls,txt,jpg,bmp,jpeg,tiff,icon}这就是我们定义属性的

c# - 如何序列化 List<T>?

我有A类。B类和C类是A类的一部分。ClassA{//FewPropertiesofClassAListlist1=newList()Listlist2=newList()NsystemNotSystem{get;set;}//EnumPropertyType}publicenumNsystem{A=0,B=1,C=2}我想序列化A类并用它生成XML;我还想序列化list1和list2以及枚举...什么是序列化此XML的好方法,因为我需要将对象转换为XML并将XML转换为对象的功能...执行此操作有哪些好的选择?谢谢 最佳答案 您可

c# - 序列化 bool ?错误反射(reflect)类型

我有一个类似的类[Serializable]publicclassMyClass{[XmlAttribute]publicboolmyBool{get;set;}}但是当xml中不存在属性时,这会将bool的值序列化为false。当属性不在xml中时,我希望该属性为null。所以我试过了[Serializable]publicclassMyClass{[XmlAttribute]publicbool?myBool{get;set;}}但是随后序列化器出错Typet=Type.GetType("Assembly.NameSpace.MyClass");XmlSerializermySer

c# - 使用 newtonsoft.json 反序列化 List<AbstractClass>

我正在尝试序列化和反序列化abstract类列表(mustinheritforvb),显然其中只有派生类的实例。我用JsonProperty(ItemTypeNameHandling=TypeNameHandling.Auto)修饰了列表参数,获得如下所示的输出:但是我反序列化的时候一直说他不能反序列化一个抽象类。http://james.newtonking.com/json/help/index.html?topic=html/SerializeTypeNameHandling.htmpublicclassConcreteClass{privateObservableCollect

c# - 通过 bool 函数排序列表的更短方法

我有一个需要以特定方式排序的列表。我目前是这样解决的:varfiles=GetFiles().OrderByDescending(x=>x.Filename.StartsWith("ProjectDescription_")).ThenByDescending(x=>x.Filename.StartsWith("Budget_")).ThenByDescending(x=>x.Filename.StartsWith("CV_")).ToArray();这些文件将被合并到一个PDF文件中,这里的重点是某些文件应该放在开头,其余的放在最后。我想知道是否有更好的方法来编写这个“模式”,因为它

c# - 序列化和恢复未知类

基础项目包含一个抽象基类Foo。在单独的客户端项目中,有实现该基类的类。我想通过在基类上调用一些方法来序列化和恢复具体类的实例://Inthebaseproject:publicabstractclassFoo{abstractvoidSave(stringpath);abstractFooLoad(stringpath);}可以假设在反序列化时,所有需要的类都存在。如果可能的话,序列化应该用XML完成。使基类实现IXmlSerializable是可能的。我有点卡在这里。如果我对事情的理解是正确的,那么这只能通过向每个实现类的基类添加[XmlInclude(typeof(Unknown

c# - 使用 XmlSerializer.Deserialize 进行反序列化时,何时调用类构造函数?

我的应用程序使用XmlSerializer保存了一个类,然后在需要时通过再次反序列化创建一个实例。我想在我的构造函数逻辑中使用我的类的一些属性成员(在反序列化期间分配)。假设首先分配属性是可以的,一旦分配了所有属性就会调用构造函数吗?继续讨论这个话题,是否有关于反序列化期间发生的事件顺序的文档? 最佳答案 不,假设属性将在构造函数运行时设置是不正确的。反之亦然。构造函数是创建对象实例时运行的第一段代码。在构造函数开始执行之前,不可能设置属性。XML反序列化过程大致如下所示调用无参构造函数将属性设置为其反序列化值解决此问题的一种方法是

c# - 使用 JSON.NET 将 JSON 反序列化为匿名对象

我正在使用JSON.NET对对象进行反序列化,但我无法让它与我正在使用的对象的当前结构一起工作。http://dorobantu.me/post/2010/08/22/Deserializing-JSON-to-anonymous-types-in-C.aspx我的对象目前看起来像这样(我想传递一个对象列表)[{"ID":"ConcurrentUser","FieldType":190,"value":""},{"ID":"SystemType","FieldType":191,"value":null}]我收到错误:CannotdeserializeJSONarrayintotype